package config

import (
	"exchangeapp/global"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"log"
	"time"
)

func initDB() {
	dsn := AppConfig.Database.Dsn                         //读取config中的数据库信息
	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) //使用gorm建立连接

	if err != nil {
		log.Fatalf("database connection error: %v", err)
	}

	sqlDb, err := db.DB() //sqlDB获取客户端实例

	if err != nil {
		log.Fatalf("database error: %v", err)
	}
	//设置数据库连接基础配置
	sqlDb.SetMaxIdleConns(AppConfig.Database.MaxIdleConns)
	sqlDb.SetMaxOpenConns(AppConfig.Database.MaxOpenConns)
	sqlDb.SetConnMaxLifetime(time.Hour)

	global.DB = db //将创建的客户端实例 复制给 全局变量DB，以便于项目任意地方都可以直接使用该实例
}
